home *** CD-ROM | disk | FTP | other *** search
-
-
-
- SETBUF C Library Procedures SETBUF
-
-
-
- NNAAMMEE
- setbuf, setbuffer, setlinebuf, setvbuf - assign buffering to
- a stream
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssttddiioo..hh>>
-
- sseettbbuuff((ssttrreeaamm,, bbuuff))
- FFIILLEE **ssttrreeaamm;;
- cchhaarr **bbuuff;;
-
- sseettbbuuffffeerr((ssttrreeaamm,, bbuuff,, ssiizzee))
- FFIILLEE **ssttrreeaamm;;
- cchhaarr **bbuuff;;
- iinntt ssiizzee;;
-
- sseettlliinneebbuuff((ssttrreeaamm))
- FFIILLEE **ssttrreeaamm;;
-
- sseettvvbbuuff((ssttrreeaamm,, bbuuff,, mmooddee,, ssiizzee))
- FFIILLEE **ssttrreeaamm;;
- cchhaarr **bbuuff;;
- iinntt mmooddee;;
- iinntt ssiizzee;;
-
-
- DDEESSCCRRIIPPTTIIOONN
- The three types of buffering available are unbuffered, block
- buffered, and line buffered. When an output stream is
- unbuffered, information appears on the destination file or
- terminal as soon as written; when it is block buffered many
- characters are saved up and written as a block; when it is
- line buffered characters are saved up until a newline is
- encountered or input is read from stdin. _F_f_l_u_s_h (see
- _f_c_l_o_s_e(3S)) may be used to force the block out early. Nor-
- mally all files are block buffered. A buffer is obtained
- from _m_a_l_l_o_c(3) upon the first _g_e_t_c or _p_u_t_c(3S) on the file.
- If the standard stream ssttddoouutt refers to a terminal it is
- line buffered. The standard stream ssttddeerrrr is always unbuf-
- fered.
-
- _S_e_t_b_u_f is used after a stream has been opened but before it
- is read or written. The character array _b_u_f is used instead
- of an automatically allocated buffer. If _b_u_f is the con-
- stant pointer NNUULLLL,, input/output will be completely unbuf-
- fered. A manifest constant BBUUFFSSIIZZ tells how big an array is
- needed:
-
- cchhaarr buf[BUFSIZ];
-
- _S_e_t_b_u_f_f_e_r, an alternate form of _s_e_t_b_u_f, is used after a
- stream has been opened but before it is read or written.
-
-
-
- Sprite v1.0 October 16, 1987 1
-
-
-
-
-
-
- SETBUF C Library Procedures SETBUF
-
-
-
- The character array _b_u_f whose size is determined by the _s_i_z_e
- argument is used instead of an automatically allocated
- buffer. If _b_u_f is the constant pointer NNUULLLL, input/output
- will be completely unbuffered.
-
- _S_e_t_l_i_n_e_b_u_f is used to change _s_t_d_o_u_t or _s_t_d_e_r_r from block
- buffered or unbuffered to line buffered. Unlike _s_e_t_b_u_f and
- _s_e_t_b_u_f_f_e_r it can be used at any time that the file descrip-
- tor is active.
-
- _S_e_t_v_b_u_f is the final form of _s_e_t_b_u_f; as with _s_e_t_b_u_f, it
- must be invoked after a stream has been opened but before it
- is read or written. The argument _m_o_d_e determines how _s_t_r_e_a_m
- will be buffered: __IIOOFFBBFF causes input/output to be fully
- buffered, __IIOOLLBBFF causes output to be line buffered, and
- __IIOONNBBFF causes input/output to be unbuffered. The argument
- _s_i_z_e specifies how large a buffer to use. If _b_u_f is NNUULLLL ,
- then _s_e_t_v_b_u_f will allocate the buffer space; otherwise, it
- will use the space at _b_u_f (which must contain at least _s_i_z_e
- bytes). _S_e_t_v_b_u_f returns zero on success, or nonzero if an
- invalid value is given for _m_o_d_e or if the request cannot be
- honored.
-
- A file can be changed from unbuffered or line buffered to
- block buffered by using _f_r_e_o_p_e_n (see _f_o_p_e_n(3S)). A file can
- be changed from block buffered or line buffered to unbuf-
- fered by using _f_r_e_o_p_e_n followed by _s_e_t_b_u_f with a buffer
- argument of NNUULLLL.
-
- SSEEEE AALLSSOO
- fopen(3S), getc(3S), putc(3S), malloc(3), fclose(3S),
- puts(3S), printf(3S), fread(3S)
-
- BBUUGGSS
- The _s_e_t_b_u_f_f_e_r and _s_e_t_l_i_n_e_b_u_f functions are not portable to
- non-4.2BSD versions of UNIX. On 4.2BSD and 4.3BSD systems,
- _s_e_t_b_u_f always uses a suboptimal buffer size and should be
- avoided. _S_e_t_b_u_f_f_e_r is not usually needed as the default
- file I/O buffer sizes are optimal.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 October 16, 1987 2
-
-
-
-